In known distributed software applications, software components are distributed among a plurality of executables (i.e., software capsules or software entities). Each of the executables contains one or more software components that perform some portion of the functionality of the distributed software application. The software components often store state information, for example, a checkpoint, to reduce recovery time of a failed software component. In known distributed software applications, the software components individually manage checkpoints and their associated checkpoint procedures.
As one shortcoming, the software developer must create extra software within the first and second executables to perform the checkpoint procedures. Thus, a need exists to alleviate software components of the responsibility of handling checkpoint procedures.